package com.gopay.common.rcs.manager.antiphish;

import java.util.List;

import com.gopay.common.constants.trans.GatewayChannel;
import com.gopay.common.domain.rcs.RcsAntiPhishConfCust;
import com.gopay.common.domain.rcs.RcsAntiPhishConfEditLog;
import com.gopay.common.rcs.bean.AntiPhishType;
import com.gopay.common.rcs.vo.RcsAntiPhishConfCustlVo;

/**
 * 防钓鱼商户定制配置
 * 
 * @RcsAntiPhishingCustManager.java
 * @author liujy
 * @2013-7-23 下午6:35:31 www.gopay.com.cn Inc.All rights reserved.
 */
public interface RcsAntiPhishingCustManager {

    /**
     * 初次设置单个商户的 所有验证规则
     * 
     * @param custConfs
     */
    void saveCustConf(RcsAntiPhishConfCustlVo newCustConf,List<RcsAntiPhishConfCust> custConfs,String operId,String operName);

    /**
     * 商户一次修改操作涉及多条 验证条件 需要在一个事物中
     * 
     * @param custConfs
     */
    void updateCustConf(List<RcsAntiPhishConfCust> custConfs, List< RcsAntiPhishConfEditLog> logList);

    /**
     * 查询列表但商户防钓鱼列表
     * 
     * @param custName
     *            客户名称
     * @param email
     *            客户emial
     * @param pageNo
     *            当前页
     * @param pageSize
     *            分页大小
     * @return
     */
    List<?> getCustConfBySqlList(String custName, String email, String custMob, int pageNo, int pageSize);

    int getCount(String custName, String email, String custMob);

    /**
     * 查询指定商户的信息
     * 
     * @param email
     * @return
     */
    List<?> getCustConfBySql(String custId);

    /**
     * 规则未初始化是 只查询商户信息
     * 
     * @param custName
     * @param email
     * @param pageNo
     * @param pageSize
     * @return
     */
    List<RcsAntiPhishConfCustlVo> getMerchantBySql(String custName, String email, String custMob, int pageNo, int pageSize);

    /**
     * 规则未初始化是 只查询商户信息(条数)
     * 
     * @param custName
     * @param email
     * @return
     */
    int getMerchantCount(String custName, String custEmail, String custMob);
    
    /**
     * 规则未初始化时 查询单商户信息
     * 
     * @param custId
     * @return
     */
    RcsAntiPhishConfCustlVo getMerchantByCustId(String custId);

    String getLegalValue(String custId, AntiPhishType type, GatewayChannel gch);
    
    RcsAntiPhishConfCust getByCustId(String custId);
    
    void delLogo(String custId,String operId,String operName);
}
